Alteryxでヘッダ情報付きCSVファイルを扱う
こんにちは。DI部プリセールスエンジニアの兼本です。
CSVファイルといえば、一般的にカラムヘッダ部とデータ部があり、カンマ区切りやタブ区切りになっているテキストデータかと思いますが、世の中にはなぜかダウンロードした日付やデータに関する補足説明が先頭に含まれているCSVファイルが存在します。
今回はこのようなデータをAlteryxで読み込む方法について考えます。
使用環境について
Alteryx Designer 2019.1を使用しています。
使用データについて
気象庁が公開している過去の気象データを利用させていただきました。 こんなデータです。
ダウンロードした時刻:2019/03/xx xx:xx:xx ,東京,東京,東京,東京,東京,東京,東京,東京 年月日,平均気温(℃),最高気温(℃),最低気温(℃),平均風速(m/s),平均蒸気圧(hPa),平均雲量(10分比),天気概況(昼:06時~18時),天気概況(夜:18時~翌日06時) ,,,,,,,, 2018/2/1,3.0,6.3,0.6,2.3,6.0,9.8,薄曇後雨,雨後雪 2018/2/2,1.9,3.8,0.5,2.4,6.6,10.0,雪後みぞれ時々曇,曇時々雨 2018/2/3,4.5,7.8,1.6,1.9,6.4,8.5,薄曇時々晴,曇時々晴
まずはそのまま読み込んでみる
Alteryxはデフォルトで文字コードがUTF-8であることを期待していますが、気象庁が提供しているCSVファイルは文字コードがShiftJISなので、コードページを「UTF-8」から「ANSI/OEM - 日本語Shift-JIS」に変更する必要がありますが、それ以外はデフォルト設定にします。
プロパティ設定下部のプレビュー画面ですでに期待する結果とは違いますが、気にせずワークフローを実行します。
エラーになってしまいました。 これは、AlteryxがCSVファイルを読み込むときに、1行目のデータ書式をもとに読み込むべきフィールド数を決めているためです。 今回のデータは1行目には1フィールドしかないにも関わらず、3行目からフィールド数が増えたため、正しくデータを読み込むことができませんでした。
いらないヘッダ情報をスキップする
このようなケースに対応するもっともシンプルな方法は、データ読み込みをおこなう開始行を変更することです。 データ入力ツールには「データインポートの開始行」というオプションがあります。デフォルトは「1」なので、ここにデータ読み込みを開始したい行数を指定すればOKです。 今回のケースでは実際のヘッダ行が始まる「4」行目を指定しています。
実行結果は以下の通り。期待するデータを読み込むことができました。
ヘッダ情報も欲しいとき
ヘッダ情報にも欲しいデータがある場合は、少し工夫が必要です。例として、今回のデータには3行目に「東京」という気象情報の地点情報が含まれているので、地点情報を各レコードに付与して以下のようなデータを作成してみます。(赤く囲った部分が、追加した地点情報です。)
作成したワークフローは以下の通りです。
データ入力ツール
最初のデータ入力ツールでは、CSVファイルのデータを1行まとめて取得するために、「区切り文字」オプションに「¥0」を指定しています。
列分割ツール
列分割ツールでは、フラットデータとして読み込んだField_1のデータをカンマ(,)区切りとして9つのフィールドに分割しています。
実行結果をみると以下のようにデータが分割されていることが確認できます。
必要な行の選択
次のステップは処理を2つに分けています。
- サンプルツール ... 実際の気象データのみを取り出すために最初の3レコードをスキップします。
- レコード選択ツール ... 取得したい行を数値範囲で指定できます。今回は地点情報を含む3行目だけを取り出すために使用しています。
動的リネームツール
サンプルツールで取得したデータの1行目にはヘッダ行が含まれていますので、このデータを使ってヘッダを作成します。
フィールド付加ツール
フィールド付加ツールを使うと、ターゲット(T)アンカーの各レコードに対して、ソース(S)アンカーのレコードを付与することができます。 また、レコードに付与するフィールドを選択したり、フィールド名を変更することもできます。 この例では、最初に読み込んだField_1のデータを元にしてヘッダを作成したため、フィールド名が長くなりすぎてしまいました。スクリーンショットがわかりにくくて申し訳ないです。m(__)m
フィルタツール
ヘッダ行の直後に出現している空レコードをフィルタツールで削除すれば、完成です。
まとめ
いかがでしたでしょうか。 Alteryxでヘッダ情報付きCSVファイルを扱う方法についてご紹介をいたしました。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。